Time Optimal Software Pipelining of Loops with Control Flows for VLIW Processors
ثبت نشده
چکیده
Software pipelining is widely used as a compiler optimization technique to achieve high performance in machines that exploit instruction-level parallelism such as superscalar or VLIW processors. However, surprisingly, there have been few theoretical results on the optimality of software pipelined loops with control flows. The problem of time optimal software pipelining of loops with control flows is such an under-investigated theoretical problem. In this paper, we give a complete treatment on the time optimal software pipelining problem solving two fundamental open problems. First, we show that there exists a (computable) decision procedure that can decide if a given loop with control flows has a time optimal parallel program or not. Second, we present a software pipelining algorithm that computes a time optimal parallel program, which is the most significant outcome from the practical point of view. As part of the formal treatment of software pipelining, we propose a new formalization of software pipelining, which provides a basis of our proof as well as a new theoretical framework for software pipelining research.
منابع مشابه
Optimization of SAD Algorithm on VLIW DSP
SAD (Sum of Absolute Difference) algorithm is heavily used in motion estimation which is computationally highly demanding process in motion picture encoding. To enhance the performance of motion picture encoding on a VLIW processor, an efficient implementation of SAD algorithm on the VLIW processor is essential. SAD algorithm is programmed as a nested loop with a conditional branch. In VLIW pro...
متن کاملSCAN: A Heuristic for Near-Optimal Software Pipelining
Software pipelining is a classic compiler optimization that improves the performances of inner loops on instruction-level parallel processors. In the context of embedded computing, applications are compiled prior to manufacturing the system, so it is possible to invest large amounts of time for compiler optimizations. Traditionally, software pipelining is performed by heuristics such as iterati...
متن کاملSoftware Pipelining for the Pegasus IR
Modern processors, especially VLIW processors, often have the ability to execute multiple instructions simultaneously. Taking advantage of this capability is crucial for high performance software applications. Software pipelining is a technique designed to increase the level of parallelism in loops. We propose a new approach to software pipelining based on direct manipulations of control flow g...
متن کاملSoftware Pipelining and Superblock Scheduling: Compilation Techniques for VLIW Machines
© Copyright Hewlett-Packard Company 1992 Compilers for VLIW and superscalar processors have to expose instruction-level parallelism to effectively utilize the hardware. Software pipelining is a scheduling technique to overlap successive iterations of loops, while superblock scheduling extracts ILP from frequently executed traces. This paper describes an effort to employ both software pipelining...
متن کاملA First Step Towards Time Optimal Software Pipelining of Loops with Control Flows
We address the problem of time optimal software pipelining of loops with control ows, one of the most di cult open problems in the area of parallelizing compilers. We present a necessary condition for loops with control ows to have equivalent time optimal programs, generalizing the result by Schwiegelshohn et al., which has been the most signi cant theoretical result on the problem. As part of ...
متن کامل